<?php

namespace App\Admin\Models;

use Dcat\Admin\Models\Administrator as BaseAdministrator;
use Laravel\Passport\HasApiTokens;

class Administrator extends BaseAdministrator
{
    use HasApiTokens;

    /**
     * 保持与父类一致的方法签名
     *
     * @param string $permission
     * @return bool
     */
    public function cannot(string $permission): bool
    {
        // 如果需要兼容 Passport 的功能，可以这样处理
        if (request()->expectsJson() || request()->is('api/*')) {
            return ! $this->can($permission);
        }

        return parent::cannot($permission);
    }

    /**
     * Passport 需要的方法
     */
    public function findForPassport($username)
    {
        return $this->where('username', $username)->first();
    }
}